package com.hhxy.service.impl;

import com.hhxy.handler.exception.CustomException;
import com.hhxy.utils.SecurityUtils;
import com.hhxy.utils.response.AppHttpCodeEnum;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Objects;

/**
 * @author ghp
 * @date 2023/5/3
 * @title
 * @description 用于校验用户权限
 */
@Service("ps")
public class PermissionService {
    /**
     * 判断当前用户是否具有该权限
     */
    public boolean hasPermission(String permission){
        // 如果是超级管理员，直接返回true
        if (SecurityUtils.isAdmin()){
            return true;
        }
        // 否则，获取当前用户对应的权限，判断是否具有改权限
        List<String> permissions = SecurityUtils.getLoginUser().getPermissions();
        if (Objects.isNull(permissions)){
            // 防止空指针异常
            throw new CustomException(AppHttpCodeEnum.SYSTEM_UNPOWER_ERROR);
        }
        return permissions.contains(permission);
    }
}
